package com.cnap.service;

import com.cnap.model.cloud.*;
import com.cnap.model.cloud.scaling.CreateScalingDTO;

import java.util.List;

/**
 * 多云管理服务
 *
 * @author xc
 **/
public interface CloudMgmtService {

    /**
     * 创建云资源参数
     *
     * @param createCloudParam 参数
     * @return 结果
     */
    CommentResultForCloud createCloudResource(CreateCloudParam createCloudParam);

    /**
     * 创建云资源参数
     *
     * @param createCloudParam 参数
     * @return 结果
     */
    CommentResultForCloud createCloudResourceWithoutToken(CreateCloudParam createCloudParam);

    /**
     * 删除本地镜像
     *
     * @param deleteLocalImageParam 参数
     * @return 结果
     */
    CommentResultForCloud deleteLocalImageByServiceInfo(DeleteLocalImageParam deleteLocalImageParam);

    /**
     * 创建最新的扩缩容策略
     *
     * @param createScalingDTOs 参数
     * @return 结果
     */
    CommentResultForCloud insertNewScalingPolicy(List<CreateScalingDTO> createScalingDTOs);

    /**
     * 删除虚机及其他信息
     *
     * @param deleteParam 参数
     * @return 结果
     */
    CommentResultForCloud deleteVmAndOtherInfo(DeleteParam deleteParam);

    /**
     * 删除指标历史
     *
     * @param deleteIndicatorHistoryParam 参数
     * @return 结果
     */
    CommentResultForCloud deleteIndicatorHistory(DeleteIndicatorHistoryParam deleteIndicatorHistoryParam);

}
